/*
 * Ranking.h
 * Created on: 22/09/2011
 * Author: Arthur Holanda
 */

#ifndef RANKING_H_
#define RANKING_H_

#include "db/InfoDB.h"
#include <FBase.h>
#include <FIo.h>

using namespace Osp::Io;
using namespace Osp::Base;
using namespace Osp::Base::Collection;

class DatabaseManager {
public:
	DatabaseManager();
	void Construct();
	virtual ~DatabaseManager();

	void Inserir(InfoDB* info);
	InfoDB* GetInfoPorPosicao(int posicao);
	InfoDB* GetInfoPorNome(String nome);//todo OBS: mudar o nome pra ser unico.
	void Limpar();
	void Atualizar(InfoDB* info);
	ArrayList* GetPerfisOrderByNome();/*todo Deve retornar um ArrayList de InfoDB de todos os perfis armazenados, ordenados pelo nome*/
	ArrayList* GetPerfisOrderByCofre();/*todo Deve retornar um ArrayList de InfoDB de todos os perfis armazenados, ordenados pelo cofre*/
	void Remove(String nome);/*todo Deve remover o perfil com nome passado como parametro*/

protected:
	Database database;

private:
	ArrayList* GetPerfis(String statement);
};

#endif /* RANKING_H_ */
